import { createSelector, Selector } from '@reduxjs/toolkit';
import { RootState } from "../store";
import { IUserData } from "../../types/userDataType";

/**
 * @function selectUserData - Функция выбора данных, принимает состояние хранилища redux 
 * и возвращает данные основанные на этом состоянии.
 * @param { RootState } state - Состояние хранилища. 
 * @returns { IUserData } - Объект с данными пользователя.
 */
const selectUserData = (state: RootState): IUserData => state.user.userData;

/**
 * Кэширование селектора selectUserData.
 */
export const getUserSelector: Selector<RootState, IUserData> = createSelector(
    selectUserData,
    userData => userData
)